O comando If e várias estruturas If...EndIf permitem executar uma instrução ou o um bloco de instruções condicionalmente, ou seja, baseado no resultado de um teste (como, por exemplo, x>5). Os comandos Lbl (etiqueta) e Goto permitem ramificar-se ou saltar de um local para outro numa função ou num programa.
O comando If e as várias estruturas If...EndIf residem no menu Controlo do Editor de programas.
Quando inserir uma estrutura, como, por exemplo, If...Then...EndIf, um modelo é inserido no local do cursor. O cursor é posicionado de forma a que possa introduzir um teste condicional.
Para executar um comando individual quando um teste condicional é verdadeiro, utilize a forma geral:
|
If x>5 Disp "x é maior que 5" À Disp x Á |
|
À |
Executado apenas se x>5; caso contrário, ignorado. |
|
Á |
Mostra sempre o valor de x. |
Neste exemplo, tem de guardar um valor para x antes de executar o comando If.
Para executar um grupo de comandos se um teste condicional for verdadeiro, utilize a estrutura:
|
If x>5 Then Disp "x é maior que 5" À 2¦x&x À EndIf Disp x Á |
|
À |
Executado apenas se x>5. |
|
Á |
Mostra o valor de: |
Nota: EndIf marca o fim do bloco Then que é executado se a condição for verdadeira.
Para executar um grupo de comandos se um teste condicional for verdadeiro e um grupo diferente se a condição for falsa, utilize esta estrutura:
|
If x>5 Then Disp "x é maior que 5" À 2¦x&x À Else Disp "x é menor ou igual a 5" Á 5¦x&x Á EndIf Disp x  |
|
À |
Executado apenas se x>5. |
|
Á |
Executado apenas se x{5. |
|
 |
Mostra o valor de: |
Uma forma mais complexa do comando If permite testar várias condições. Suponha que quer um programa para testar um argumento fornecido pelo utilizador que significa uma de quatro opções.
Para testar cada opção (If Escolha=1, If Escolha=2, etc), utilize a estrutura If...Then...ElseIf...EndIf.
Pode também controlar o fluxo com os comandos Lbl (etiqueta) e Goto. Estes comandos residem no menu Transferências do Editor de programas.
Utilize o comando Lbl para etiquetar (atribuir um nome a) um local específico na função ou no programa.
|
Lbl NomeDaEtiqueta |
nome a atribuir a esta localização (utilize a mesma convenção de renomeação como o nome de uma variável) |
Pode utilizar o comando Goto em qualquer ponto da função ou do programa para se ramificar para o local que corresponde à etiqueta especificada.
|
Goto NomeDaEtiqueta |
especifica qual o comando Lbl a ramificar |
Como um comando Goto é incondicional (ramifica-se sempre para a etiqueta especificada), é utilizado frequentemente com um comando If para que possa especificar um teste condicional. Por exemplo:
|
If x>5 Goto GT5 À Disp x -------- -------- Á Lbl GT5 Disp "O número era > 5" |
|
À |
If x>5, ramifica-se directamente para a etiqueta GT5. |
|
Á |
Para este exemplo, o programa tem de incluir comandos (como, por exemplo, Stop) que impede a Lbl GT5 de ser executada se x{5. |